package com.wgh.product.service;

import com.wgh.product.entity.shop.ProductRelation;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 商品关联Service接口
 * 
 * @author AI Shop
 */
public interface ProductRelationService extends IService<ProductRelation> {

    /**
     * 根据商品ID和关联类型查询关联商品列表
     * 
     * @param mainProductId 主商品ID
     * @param relationType 关联类型
     * @return 关联商品列表
     */
    List<ProductRelation> getRelationsByMainProductIdAndType(Long mainProductId, Integer relationType);

    /**
     * 根据关联商品ID和关联类型查询关联记录
     * 
     * @param relatedProductId 关联商品ID
     * @param relationType 关联类型
     * @return 关联商品列表
     */
    List<ProductRelation> getRelationsByRelatedProductIdAndType(Long relatedProductId, Integer relationType);

    /**
     * 批量添加商品关联
     * 
     * @param productRelations 商品关联列表
     * @return 是否成功
     */
    boolean addBatch(List<ProductRelation> productRelations);

    /**
     * 根据主商品ID删除商品关联
     * 
     * @param mainProductId 主商品ID
     * @return 是否成功
     */
    boolean deleteByMainProductId(Long mainProductId);

    /**
     * 根据主商品ID和关联类型删除商品关联
     * 
     * @param mainProductId 主商品ID
     * @param relationType 关联类型
     * @return 是否成功
     */
    boolean deleteByMainProductIdAndType(Long mainProductId, Integer relationType);

    /**
     * 检查商品关联是否存在
     * 
     * @param mainProductId 主商品ID
     * @param relatedProductId 关联商品ID
     * @param relationType 关联类型
     * @return 是否存在
     */
    boolean checkRelationExists(Long mainProductId, Long relatedProductId, Integer relationType);
}